<?php
/**
 * Zendパーシャルビューヘルパーによるコンポーネント基底クラスモジュール
 */
require_once 'Zend/View.php';
require_once 'Request/DateTime.php';
require_once APPLICATION_PATH . '/models/Calendar/xml/CalendarXmlController.php';

class Display{};

/**
 * Zendパーシャルビューヘルパーによるコンポーネント基底クラス
 * @author hariushi
 *
 */
class Components_ZendPartial
{
	public $ZendView;
	public $view;

	/** @var Lib_Request_DateTime */
	protected $_objHttpRequest;
	/** @var フォーム入力コントローラ用デフォルト値 */
	protected $_defaultValue = FALSE;

	public function __construct($TemplateDir)
	{
		//$this->ZendView = $view;
		$this->ZendView = new Zend_View();
		$this->ZendView->addScriptPath($TemplateDir);
		$this->view = new Display();
		/***
		 * HTTPリクエストオブジェクト
		*/
		$this->_objHttpRequest = new Lib_Request_DateTime();

	}

	public function fetch($TemplateFileName)
	{
		$sHtml = $this->ZendView->partial($TemplateFileName, $this->_setValue());
		return $sHtml;
	}

	public function setDefaultValue($defaultValue)
	{
		$this->_defaultValue = $defaultValue;
	}

	protected function _setValue()
	{
		$aryValueList = get_object_vars( $this->view );
		return $aryValueList;
	}

	/**
	 * カレンダーデータセットオブジェクト生成
	 * カレンダーデータセットが未設定の場合の処理
	 */
	protected function _createCalendarDatasetObject()
	{
		$HttpRequestYYYY = $this->_objHttpRequest->getYear();
		$HttpRequestMM = sprintf('%02d', $this->_objHttpRequest->getMonth());
		$objCalendar = new Models_Calendar_Xml_Controller($HttpRequestYYYY.$HttpRequestMM);
		return $objCalendar;
	}
}